<html>
<head><meta charset="utf-8"><title>Major change proposal: Support collecting compiler-team#276 · t-compiler/major changes · Zulip Chat Archive</title></head>
<h2>Stream: <a href="https://rust-lang.github.io/zulip_archive/stream/233931-t-compiler/major-changes/index.html">t-compiler/major changes</a></h2>
<h3>Topic: <a href="https://rust-lang.github.io/zulip_archive/stream/233931-t-compiler/major-changes/topic/Major.20change.20proposal.3A.20Support.20collecting.20compiler-team.23276.html">Major change proposal: Support collecting compiler-team#276</a></h3>

<hr>

<base href="https://rust-lang.zulipchat.com">

<head><link href="https://rust-lang.github.io/zulip_archive/style.css" rel="stylesheet"></head>

<a name="194523191"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/233931-t-compiler/major%20changes/topic/Major%20change%20proposal%3A%20Support%20collecting%20compiler-team%23276/near/194523191" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> triagebot <a href="https://rust-lang.github.io/zulip_archive/stream/233931-t-compiler/major-changes/topic/Major.20change.20proposal.3A.20Support.20collecting.20compiler-team.23276.html#194523191">(Apr 18 2020 at 03:15)</a>:</h4>
<p>A new proposal has been announced <a href="https://github.com/rust-lang/compiler-team/issues/276" title="https://github.com/rust-lang/compiler-team/issues/276">#276</a>. It will be brought up at the next meeting.</p>



<a name="194539596"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/233931-t-compiler/major%20changes/topic/Major%20change%20proposal%3A%20Support%20collecting%20compiler-team%23276/near/194539596" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/233931-t-compiler/major-changes/topic/Major.20change.20proposal.3A.20Support.20collecting.20compiler-team.23276.html#194539596">(Apr 18 2020 at 11:26)</a>:</h4>
<p>Hmm, <span class="user-mention" data-user-id="116458">@Charles Lew</span>, did you have any thoughts about how to implement this proposal?</p>



<a name="194539606"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/233931-t-compiler/major%20changes/topic/Major%20change%20proposal%3A%20Support%20collecting%20compiler-team%23276/near/194539606" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/233931-t-compiler/major-changes/topic/Major.20change.20proposal.3A.20Support.20collecting.20compiler-team.23276.html#194539606">(Apr 18 2020 at 11:26)</a>:</h4>
<p>It's going to be tricky to combine with incremental compilation</p>



<a name="194539611"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/233931-t-compiler/major%20changes/topic/Major%20change%20proposal%3A%20Support%20collecting%20compiler-team%23276/near/194539611" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/233931-t-compiler/major-changes/topic/Major.20change.20proposal.3A.20Support.20collecting.20compiler-team.23276.html#194539611">(Apr 18 2020 at 11:26)</a>:</h4>
<p>Well, not <em>necessarily</em>, you can certainly have a query that works the entire AST or something</p>



<a name="194539619"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/233931-t-compiler/major%20changes/topic/Major%20change%20proposal%3A%20Support%20collecting%20compiler-team%23276/near/194539619" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/233931-t-compiler/major-changes/topic/Major.20change.20proposal.3A.20Support.20collecting.20compiler-team.23276.html#194539619">(Apr 18 2020 at 11:27)</a>:</h4>
<p>which we would usually write as one that walks each function and invokes a sub-query, to actually get some caching</p>



<a name="194539626"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/233931-t-compiler/major%20changes/topic/Major%20change%20proposal%3A%20Support%20collecting%20compiler-team%23276/near/194539626" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/233931-t-compiler/major-changes/topic/Major.20change.20proposal.3A.20Support.20collecting.20compiler-team.23276.html#194539626">(Apr 18 2020 at 11:27)</a>:</h4>
<p>there are also other annoying details, like <code>#[cfg]</code> to consider</p>



<a name="194549860"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/233931-t-compiler/major%20changes/topic/Major%20change%20proposal%3A%20Support%20collecting%20compiler-team%23276/near/194549860" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> simulacrum <a href="https://rust-lang.github.io/zulip_archive/stream/233931-t-compiler/major-changes/topic/Major.20change.20proposal.3A.20Support.20collecting.20compiler-team.23276.html#194549860">(Apr 18 2020 at 15:25)</a>:</h4>
<p>Hm it seems like this is the kind of thing that at least in theory could run at resolution time, rather than trying to collect everything?</p>



<a name="194549887"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/233931-t-compiler/major%20changes/topic/Major%20change%20proposal%3A%20Support%20collecting%20compiler-team%23276/near/194549887" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> simulacrum <a href="https://rust-lang.github.io/zulip_archive/stream/233931-t-compiler/major-changes/topic/Major.20change.20proposal.3A.20Support.20collecting.20compiler-team.23276.html#194549887">(Apr 18 2020 at 15:25)</a>:</h4>
<p>unless I misunderstood and we specifically want to do something like "compare against all other defined idents"</p>



<a name="194549939"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/233931-t-compiler/major%20changes/topic/Major%20change%20proposal%3A%20Support%20collecting%20compiler-team%23276/near/194549939" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> simulacrum <a href="https://rust-lang.github.io/zulip_archive/stream/233931-t-compiler/major-changes/topic/Major.20change.20proposal.3A.20Support.20collecting.20compiler-team.23276.html#194549939">(Apr 18 2020 at 15:26)</a>:</h4>
<p>ah yes, I see the RFC now as well</p>



<a name="194549952"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/233931-t-compiler/major%20changes/topic/Major%20change%20proposal%3A%20Support%20collecting%20compiler-team%23276/near/194549952" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> simulacrum <a href="https://rust-lang.github.io/zulip_archive/stream/233931-t-compiler/major-changes/topic/Major.20change.20proposal.3A.20Support.20collecting.20compiler-team.23276.html#194549952">(Apr 18 2020 at 15:26)</a>:</h4>
<p>It feels ... plausible that this could be embedded into resolution though. We have a pretty global view of all idents there I think</p>



<a name="194574274"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/233931-t-compiler/major%20changes/topic/Major%20change%20proposal%3A%20Support%20collecting%20compiler-team%23276/near/194574274" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Charles Lew <a href="https://rust-lang.github.io/zulip_archive/stream/233931-t-compiler/major-changes/topic/Major.20change.20proposal.3A.20Support.20collecting.20compiler-team.23276.html#194574274">(Apr 19 2020 at 02:13)</a>:</h4>
<p>Frankly i don't really know much about  compiler internals yet, let alone figuring out how to fit this piece architecturally into the existing rustc architecture. So i opened this major change proposal mostly seeking for mentoring on this.</p>
<p>I implemented the a few earlier bullet points of the RFC: performing normalization at the parser site and proc-macro-server site; linting uncommon codepoints for the name of each item within the lint architecture; this piece seems harder.</p>



<a name="194577222"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/233931-t-compiler/major%20changes/topic/Major%20change%20proposal%3A%20Support%20collecting%20compiler-team%23276/near/194577222" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Charles Lew <a href="https://rust-lang.github.io/zulip_archive/stream/233931-t-compiler/major-changes/topic/Major.20change.20proposal.3A.20Support.20collecting.20compiler-team.23276.html#194577222">(Apr 19 2020 at 03:50)</a>:</h4>
<blockquote>
<p>nikomatsakis: Well, not necessarily, you can certainly have a query that works the entire AST or something<br>
nikomatsakis: which we would usually write as one that walks each function and invokes a sub-query, to actually get some caching</p>
<p>simulacrum: plausible that this could be embedded into resolution though. We have a pretty global view of all idents there I think</p>
</blockquote>
<p>Thanks for the pointers!  With your hints I digged into the code a little this morning (in my timezone) and began understanding how we might want to make this work.</p>



<a name="194577427"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/233931-t-compiler/major%20changes/topic/Major%20change%20proposal%3A%20Support%20collecting%20compiler-team%23276/near/194577427" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Charles Lew <a href="https://rust-lang.github.io/zulip_archive/stream/233931-t-compiler/major-changes/topic/Major.20change.20proposal.3A.20Support.20collecting.20compiler-team.23276.html#194577427">(Apr 19 2020 at 03:57)</a>:</h4>
<p>Actually i found that there is a <code>LintBuffer</code> that persisted during the whole early linting stage. This was introduced in <br>
<a href="https://github.com/rust-lang/rust/commit/0374e6aab7ef60b523872556ae4aca33c59fbfc9#diff-771d6215d1fb5e7f5503514f9895f7bdR371" title="https://github.com/rust-lang/rust/commit/0374e6aab7ef60b523872556ae4aca33c59fbfc9#diff-771d6215d1fb5e7f5503514f9895f7bdR371">https://github.com/rust-lang/rust/commit/0374e6aab7ef60b523872556ae4aca33c59fbfc9#diff-771d6215d1fb5e7f5503514f9895f7bdR371</a>   and stored as part of the <code>EarlyContext</code> of linting.</p>



<a name="194577889"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/233931-t-compiler/major%20changes/topic/Major%20change%20proposal%3A%20Support%20collecting%20compiler-team%23276/near/194577889" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Charles Lew <a href="https://rust-lang.github.io/zulip_archive/stream/233931-t-compiler/major-changes/topic/Major.20change.20proposal.3A.20Support.20collecting.20compiler-team.23276.html#194577889">(Apr 19 2020 at 04:10)</a>:</h4>
<p>So i can either finish this linting within <code>librustc_resolve</code> and add any possible outputs to this lint_buffer, or i can keep a big table of symbols in it and leave the checking logic to <code>librustc_lint</code>.</p>
<p>Which is better?</p>



<a name="194578015"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/233931-t-compiler/major%20changes/topic/Major%20change%20proposal%3A%20Support%20collecting%20compiler-team%23276/near/194578015" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Charles Lew <a href="https://rust-lang.github.io/zulip_archive/stream/233931-t-compiler/major-changes/topic/Major.20change.20proposal.3A.20Support.20collecting.20compiler-team.23276.html#194578015">(Apr 19 2020 at 04:15)</a>:</h4>
<p>I will try to read the code of <code>librustc_resolve</code> next, it seems <code>librustc_resolve</code> is already emitting a few lints like <code>UNUSED_IMPORTS</code>, <code>UNUSED_LABELS</code>, <code>UNUSED_MACROS</code>, etc.</p>



<a name="194594580"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/233931-t-compiler/major%20changes/topic/Major%20change%20proposal%3A%20Support%20collecting%20compiler-team%23276/near/194594580" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> simulacrum <a href="https://rust-lang.github.io/zulip_archive/stream/233931-t-compiler/major-changes/topic/Major.20change.20proposal.3A.20Support.20collecting.20compiler-team.23276.html#194594580">(Apr 19 2020 at 12:12)</a>:</h4>
<p><span class="user-mention" data-user-id="116458">@Charles Lew</span> we should be free to use the early linting stuff</p>



<a name="194594586"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/233931-t-compiler/major%20changes/topic/Major%20change%20proposal%3A%20Support%20collecting%20compiler-team%23276/near/194594586" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> simulacrum <a href="https://rust-lang.github.io/zulip_archive/stream/233931-t-compiler/major-changes/topic/Major.20change.20proposal.3A.20Support.20collecting.20compiler-team.23276.html#194594586">(Apr 19 2020 at 12:13)</a>:</h4>
<p>one question I have though is whether we expect the list to be cross-crate</p>



<a name="194594588"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/233931-t-compiler/major%20changes/topic/Major%20change%20proposal%3A%20Support%20collecting%20compiler-team%23276/near/194594588" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> simulacrum <a href="https://rust-lang.github.io/zulip_archive/stream/233931-t-compiler/major-changes/topic/Major.20change.20proposal.3A.20Support.20collecting.20compiler-team.23276.html#194594588">(Apr 19 2020 at 12:13)</a>:</h4>
<p>in that case it might be a bit more difficult</p>



<a name="194599413"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/233931-t-compiler/major%20changes/topic/Major%20change%20proposal%3A%20Support%20collecting%20compiler-team%23276/near/194599413" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Charles Lew <a href="https://rust-lang.github.io/zulip_archive/stream/233931-t-compiler/major-changes/topic/Major.20change.20proposal.3A.20Support.20collecting.20compiler-team.23276.html#194599413">(Apr 19 2020 at 14:08)</a>:</h4>
<p>The RFC did not elaborate on whether the list should be cross-crate. Personally i think the contents of the crate itself should be enough, but it would be nice if we can include the wildcard <code>use</code> imported identifiers and macro expanded identifiers, as a bonus point, i think...</p>



<a name="194601919"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/233931-t-compiler/major%20changes/topic/Major%20change%20proposal%3A%20Support%20collecting%20compiler-team%23276/near/194601919" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> simulacrum <a href="https://rust-lang.github.io/zulip_archive/stream/233931-t-compiler/major-changes/topic/Major.20change.20proposal.3A.20Support.20collecting.20compiler-team.23276.html#194601919">(Apr 19 2020 at 15:03)</a>:</h4>
<p>Yeah, if it's "things in scope" I imagine that would be simpler than "all identifiers anywhere". OTOH, if you don't get all idents, I guess some of the usefulness of the lint is lost</p>



<a name="194601940"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/233931-t-compiler/major%20changes/topic/Major%20change%20proposal%3A%20Support%20collecting%20compiler-team%23276/near/194601940" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> simulacrum <a href="https://rust-lang.github.io/zulip_archive/stream/233931-t-compiler/major-changes/topic/Major.20change.20proposal.3A.20Support.20collecting.20compiler-team.23276.html#194601940">(Apr 19 2020 at 15:03)</a>:</h4>
<p>(since afaict it only warns if you actually have two things -- so if you don't import the right thing because of the unicode confusables then you'd not get the lint)</p>



<a name="194725175"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/233931-t-compiler/major%20changes/topic/Major%20change%20proposal%3A%20Support%20collecting%20compiler-team%23276/near/194725175" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/233931-t-compiler/major-changes/topic/Major.20change.20proposal.3A.20Support.20collecting.20compiler-team.23276.html#194725175">(Apr 20 2020 at 20:00)</a>:</h4>
<p>I'd cc <span class="user-mention" data-user-id="123856">@Vadim Petrochenkov</span> on this :)</p>



<a name="194831692"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/233931-t-compiler/major%20changes/topic/Major%20change%20proposal%3A%20Support%20collecting%20compiler-team%23276/near/194831692" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Vadim Petrochenkov <a href="https://rust-lang.github.io/zulip_archive/stream/233931-t-compiler/major-changes/topic/Major.20change.20proposal.3A.20Support.20collecting.20compiler-team.23276.html#194831692">(Apr 21 2020 at 16:58)</a>:</h4>
<p><span class="user-mention" data-user-id="116458">@Charles Lew</span></p>



<a name="194832045"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/233931-t-compiler/major%20changes/topic/Major%20change%20proposal%3A%20Support%20collecting%20compiler-team%23276/near/194832045" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Vadim Petrochenkov <a href="https://rust-lang.github.io/zulip_archive/stream/233931-t-compiler/major-changes/topic/Major.20change.20proposal.3A.20Support.20collecting.20compiler-team.23276.html#194832045">(Apr 21 2020 at 17:01)</a>:</h4>
<p>Search for <code>nfc_normalize</code> in rustc code.<br>
The locations with <code>nfc_normalize</code> are exactly the locations where you need to insert the identifier skeletons into some <code>HashMap&lt;Symbol, SomeDataForDiagnostics&gt;</code> kept in <code>ParseSession</code>.</p>



<a name="194832538"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/233931-t-compiler/major%20changes/topic/Major%20change%20proposal%3A%20Support%20collecting%20compiler-team%23276/near/194832538" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Vadim Petrochenkov <a href="https://rust-lang.github.io/zulip_archive/stream/233931-t-compiler/major-changes/topic/Major.20change.20proposal.3A.20Support.20collecting.20compiler-team.23276.html#194832538">(Apr 21 2020 at 17:05)</a>:</h4>
<p>One more location where we can create arbitrary new identifier tokens is <code>src\librustc_builtin_macros\concat_idents.rs</code>, but it doesn't use <code>nfc_normalize</code> because if you concatenate two normalized tokens you get a normalized token as well (if that's not true, then we have bug). So we need to populate the confusable identifier table in that place as well (if we want to warn on macro-produced identifiers at all).</p>



<a name="194832625"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/233931-t-compiler/major%20changes/topic/Major%20change%20proposal%3A%20Support%20collecting%20compiler-team%23276/near/194832625" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Vadim Petrochenkov <a href="https://rust-lang.github.io/zulip_archive/stream/233931-t-compiler/major-changes/topic/Major.20change.20proposal.3A.20Support.20collecting.20compiler-team.23276.html#194832625">(Apr 21 2020 at 17:05)</a>:</h4>
<p>The table can then be processed in an early lint pass that goes through it and reports everything suspicious.</p>



<a name="194832950"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/233931-t-compiler/major%20changes/topic/Major%20change%20proposal%3A%20Support%20collecting%20compiler-team%23276/near/194832950" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Vadim Petrochenkov <a href="https://rust-lang.github.io/zulip_archive/stream/233931-t-compiler/major-changes/topic/Major.20change.20proposal.3A.20Support.20collecting.20compiler-team.23276.html#194832950">(Apr 21 2020 at 17:08)</a>:</h4>
<p>Oh, and I don't think this is a major change that require any special process.</p>



<a name="194880134"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/233931-t-compiler/major%20changes/topic/Major%20change%20proposal%3A%20Support%20collecting%20compiler-team%23276/near/194880134" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Charles Lew <a href="https://rust-lang.github.io/zulip_archive/stream/233931-t-compiler/major-changes/topic/Major.20change.20proposal.3A.20Support.20collecting.20compiler-team.23276.html#194880134">(Apr 22 2020 at 01:25)</a>:</h4>
<p><span class="user-mention" data-user-id="123856">@Vadim Petrochenkov</span>  Thank you for your instructions!</p>



<a name="195262741"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/233931-t-compiler/major%20changes/topic/Major%20change%20proposal%3A%20Support%20collecting%20compiler-team%23276/near/195262741" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Charles Lew <a href="https://rust-lang.github.io/zulip_archive/stream/233931-t-compiler/major-changes/topic/Major.20change.20proposal.3A.20Support.20collecting.20compiler-team.23276.html#195262741">(Apr 25 2020 at 02:07)</a>:</h4>
<p>Have put up an initial implementation at <a href="https://github.com/rust-lang/rust/pull/71542" title="https://github.com/rust-lang/rust/pull/71542">https://github.com/rust-lang/rust/pull/71542</a> modulo the <code>concat_idents</code> part.</p>



<hr><p>Last updated: Aug 07 2021 at 22:04 UTC</p>
</html>